1. Field of the Invention
The present invention relates to computer networks and more particularly to dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network.
2. Background Information
A computer network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting data between end nodes, such as personal computers and workstations. Many types of networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect the nodes over dedicated private communications links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines, optical lightpaths, synchronous optical networks (SONET), or synchronous digital hierarchy (SDH) links. The Internet is an example of a WAN that connects disparate networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other. Computer networks may be further interconnected by an intermediate network node, such as a router, to extend the effective “size” of each network.
Since management of interconnected computer networks can prove burdensome, smaller groups of computer networks may be maintained as routing domains or autonomous systems. The networks within an autonomous system (AS) are typically coupled together by conventional “intradomain” routers configured to execute intradomain routing protocols, and are generally subject to a common authority. To improve routing scalability, a service provider (e.g., an ISP) may divide an AS into multiple “areas.” It may be desirable, however, to increase the number of nodes capable of exchanging data; in this case, interdomain routers executing interdomain routing protocols are used to interconnect nodes of the various ASes. Moreover, it may be desirable to interconnect various ASes that are operated under different administrative domains. As used herein, an AS or an area are generally referred to as a “domain,” and a router that interconnects different domains together is generally referred to as a “border router.”
Examples of an intradomain routing protocol, or an interior gateway protocol (IGP), are the Open Shortest Path First (OSPF) routing protocol and the Intermediate-System-to-Intermediate-System (ISIS) routing protocol. IGPs may be used to perform routing within domains (ASes) by exchanging routing and reachability information among neighboring intradomain routers of the domains. An adjacency is a relationship formed between selected neighboring (peer) routers for the purpose of exchanging routing information messages and abstracting the network topology. The routing information exchanged by IGP peer routers typically includes destination address prefixes, i.e., the portions of destination addresses used by the routing protocol to render routing (“next hop”) decisions. Examples of such destination addresses include IP version 4 (IPv4) and version 6 (IPv6) addresses.
The OSPF and ISIS protocols are based on link-state technology and, therefore, are commonly referred to as link-state routing protocols. Link-state protocols define the manner with which routing information and network-topology information are exchanged and processed in a domain. This information is generally directed to an intradomain router's local state (e.g., the router's usable interfaces and reachable neighbors or adjacencies). The OSPF protocol is described in RFC 2328, entitled OSPF Version 2, dated April 1998 and the ISIS protocol used in the context of IP is described in RFC 1195, entitled Use of OSI ISIS for routing in TCP/IP and Dual Environments, dated December 1990, both of which are hereby incorporated by reference.
An intermediate network node often stores its routing information in a routing table maintained and managed by a routing information base (RIB). The routing table is a searchable data structure in which network addresses are mapped to their associated routing information. However, those skilled in the art will understand that the routing table need not be organized as a table, and alternatively may be another type of searchable data structure. Although the intermediate network node's routing table may be configured with a predetermined set of routing information, the node also may dynamically acquire (“learn”) network routing information as it sends and receives data packets. When a packet is received at the intermediate network node, the packet's destination address may be used to identify a routing table entry containing routing information associated with the received packet. Among other things, the packet's routing information indicates the packet's next-hop address.
To ensure that its routing table contains up-to-date routing information, the intermediate network node may cooperate with other intermediate nodes to disseminate routing information representative of the current network topology. For example, suppose the intermediate network node detects that one of its neighboring nodes (i.e., adjacent network nodes) becomes unavailable, e.g., due to a link failure or the neighboring node going “off-line,” etc. In this situation, the intermediate network node can update the routing information stored in its routing table to ensure that data packets are not routed to the unavailable network node. Furthermore, the intermediate node also may communicate this change in network topology to the other intermediate network nodes so they, too, can update their local routing tables and bypass the unavailable node. In this manner, each of the intermediate network nodes becomes “aware” of the change in topology.
Typically, routing information is disseminated among the intermediate network nodes in accordance with a predetermined network communication protocol, such as a link-state protocol (e.g., IS-IS, or OSPF). Conventional link-state protocols use link-state packets (or “IGP Advertisements”) for exchanging routing information between interconnected intermediate network nodes (IGP nodes). As used herein, an IGP Advertisement generally describes any message used by an IGP routing protocol for communicating routing information among interconnected IGP nodes, i.e., routers and switches. Operationally, a first IGP node may generate an IGP Advertisement and “flood” (i.e., transmit) the packet over each of its network interfaces coupled to other IGP nodes. Thereafter, a second IGP node may receive the flooded IGP Advertisement and update its routing table based on routing information contained in the received IGP Advertisement. Next, the second IGP node may flood the received IGP Advertisement over each of its network interfaces, except for the interface at which the IGP Advertisement was received. This flooding process may be repeated until each interconnected IGP node has received the IGP Advertisement and updated its local routing table.
In practice, each IGP node typically generates and disseminates an IGP Advertisement whose routing information includes a list of the intermediate node's neighboring network nodes and one or more “cost” values associated with each neighbor. As used herein, a cost value associated with a neighboring node is an arbitrary metric used to determine the relative ease/burden of communicating with that node. For instance, the cost value may be measured in terms of the number of hops required to reach the neighboring node, the average time for a packet to reach the neighboring node, the amount of network traffic or available bandwidth over a communication link coupled to the neighboring node, etc.
As noted, IGP Advertisements are usually flooded until each intermediate network IGP node has received an IGP Advertisement from each of the other interconnected intermediate nodes, which may be stored in a link state database (LSDB). Then, each of the IGP nodes can construct the same “view” of the network topology by aggregating the received lists of neighboring nodes and cost values. To that end, each IGP node may input this received routing information to a “shortest path first” (SPF) calculation that determines the lowest-cost network paths that couple the intermediate node with each of the other network nodes. For example, the Dijkstra algorithm is a conventional technique for performing such a SPF calculation, as described in more detail in Section 12.2.4 of the text book Interconnections Second Edition, by Radia Perlman, published September 1999, which is hereby incorporated by reference as though fully set forth herein. Each IGP node updates the routing information stored in its local routing table based on the results of its SPF calculation. More specifically, the RIB updates the routing table to correlate destination nodes with next-hop interfaces associated with the lowest-cost paths to reach those nodes, as determined by the SPF calculation.
In a “broadcast network,” it is generally assumed that all routers of the network are fully meshed, and can communicate with each and every other router directly. For instance, an ethernet or LAN is an example of a broadcast network, also known as a multi-access network. The broadcast network generally has a “designated router.” A designated router is used to originate link state advertisements on behalf of the network (or ensure that link state advertisements are sent, e.g., in IS-IS), and establish adjacencies with all routers on the network, thus participating in synchronization of the LSDBs. Each router of the broadcast network, then, conventionally maintains an adjacency to the designated router which, in turn, indicates that each router of the network is directly addressable (reachable) by the designated router. Notably, designated routers may be selected based on priorities advertised by all the routers of the broadcast network, where the router with the highest priority becomes the designated router (generally a configured selection).
One example of a designated router is a “hub” of a “hub-and-spoke” network architecture, as will be understood by those skilled in the art. Here, the hub router is configured as the designated router, and all the other routers (“spokes”) are connected to the hub. Depending on configuration, each spoke may be interconnected to other spokes, but generally each spoke communicates directly to the hub to reach other spokes of the network. In certain circumstances, the spokes may be able to directly communicate with other “remote” spokes.
One problem associated with broadcast networks is that the link state protocols used in the networks assume that the routers are fully meshed. As those skilled in the art will understand, however, this is not always the case. In particular, certain networks, e.g., hub-and-spoke networks or otherwise partially meshed (not fully meshed) networks, appear to be broadcast in nature, when, in fact, not all routers can reach each and every other router (e.g., remote spokes). When link state advertisements are distributed among the network routers, the protocol assumes that the routers can directly address (reach) the next-hop information contained in the advertisement to a particular destination address prefix. If, as in the above circumstances, the router is unable to reach the next-hop directly, the router will be unable to forward traffic to the destination address prefix due to the incorrect next-hop information, and traffic may be lost.
One solution to this problem is to utilize static routing, i.e., manually configuring the routers so that all other routers of the broadcast network are reachable by the designated router (e.g., through configuring frame relay map statements, as will be understood by those skilled in the art). This solution may be difficult to implement and does not adjust to changes in the network. For example, if an advertised next-hop is reachable sometimes and not reachable at other times, (e.g., due to mobility of routers, link flapping, etc.), the static route is inefficient at providing the best path to the destination.
Another solution to the problem of non-full mesh (or broken full mesh) broadcast networks is to configure a point-to-multipoint (P2MP) network option in OSPF networks. The P2MP option injects a host route into the LSDB so all remote routers are deemed reachable by the designated router. Effectively, the P2MP option treats the broadcast network as a collection of point-to-multipoint links, e.g., where the local router forwards traffic to the designated router (point), which then forwards the traffic to any appropriate remote router (multipoint), as will be understood by those skilled in the art. This option is generally a clumsy configuration, creating larger LSDBs in the routers of the network and is difficult to scale in large networks, as will be understood by those skilled in the art.
Again, by operating under the assumption that the network is a broadcast network, link state protocols may cause routing errors, directing a router to reach a particular destination address prefix through a next-hop that is, in fact, unreachable to the router. There remains a need, therefore, for a technique that efficiently and dynamically configures and verifies next-hop reachability information for broadcast networks using link state protocols, particularly for non-fully meshed networks. In other words, there remains a need for a technique that does not assume that advertised next-hops are reachable within a broadcast network.